// set去重，set是一种新的数据结构，类似于数组，但是成员的值都是唯一的，没有重复的值
const arr = [1,2,2,2,2,3,4,5,6,7,8,8,8,8,9]
console.log(new Set(arr))
const newArr = [...new Set(arr)]
// console.log(newArr)


// 利用filter方法遍历数组，只保留第一个数组
const newArr1 = arr.filter((item,index, self) => {
    return self.indexOf(item) === index
})
// console.log(newArr1)


// 使用reduce方法逐个遍历数组元素，构建一个新的数组，只添加第一次出现的元素
const newArr2 = arr.reduce((acc, current) => {
    if (!acc.includes(current)) {
        acc.push(current)
    }
    return acc
},[])
// console.log(newArr2)

// 使用indexOf方法，遍历数组，只添加第一次出现的元素
const newArr3 = []
arr.forEach(item => {
    if (newArr3.indexOf(item) === -1) {
        newArr3.push(item)
    }
})

console.log(newArr3)


const neArr4 = []
arr.forEach(item => {
    if (!neArr4.includes(item)) {
        neArr4.push(item)
    }
})
console.log(neArr4)